﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="TfsCommands.cs" company="Jim Liddell">
//   Copyright © Jim Liddell. All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace TeamBuildBunnyConfiguration.Models
{
    #region Usings

    using System.Windows.Input;

    #endregion

    /// <summary>
    /// Provides common TFS commands.
    /// </summary>
    public static class TfsCommands
    {
        #region Constructors and Destructors

        /// <summary>
        /// Initializes static members of the <see cref="TfsCommands"/> class.
        /// </summary>
        static TfsCommands()
        {
            SelectServer = new RoutedUICommand("SelectServer", "SelectServer", typeof(TfsCommands));
            SubscribeToBuildCompletionEvent = new RoutedUICommand(
                "SubscribeToBuildCompletionEvent", "SubscribeToBuildCompletionEvent", typeof(TfsCommands));
            UnsubscribeFromBuildCompletionEvent = new RoutedUICommand(
                "UnsubscribeFromBuildCompletionEvent", "UnsubscribeFromBuildCompletionEvent", typeof(TfsCommands));
            SubscribeToCheckInEvent = new RoutedUICommand(
                "SubscribeToCheckInEvent", "SubscribeToCheckInEvent", typeof(TfsCommands));
            UnsubscribeFromCheckInEvent = new RoutedUICommand(
                "UnsubscribeFromCheckInEvent", "UnsubscribeFromCheckInEvent", typeof(TfsCommands));
        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets a command for selecting a TFS server.
        /// </summary>
        public static RoutedUICommand SelectServer
        {
            get;
            private set;
        }

        /// <summary>
        /// Gets a command for subscribing to the build completion event.
        /// </summary>
        public static RoutedUICommand SubscribeToBuildCompletionEvent
        {
            get;
            private set;
        }

        /// <summary>
        /// Gets a command for subscribing to the checkin event.
        /// </summary>
        public static RoutedUICommand SubscribeToCheckInEvent
        {
            get;
            private set;
        }

        /// <summary>
        /// Gets a command for unsubscribing from the build completion event.
        /// </summary>
        public static RoutedUICommand UnsubscribeFromBuildCompletionEvent
        {
            get;
            private set;
        }

        /// <summary>
        /// Gets a command for unsubscribing from the checkin event.
        /// </summary>
        public static RoutedUICommand UnsubscribeFromCheckInEvent
        {
            get;
            private set;
        }

        #endregion
    }
}